package com.ms.tank.abstractfactory;

import com.ms.tank.enums.Dir;
import com.ms.tank.enums.Group;
import com.ms.tank.game.TankFrame;

/**
 * @Date 2021/3/18 18:09:39
 * @Author mashuai
 */
public abstract class GameFactory {

    /**
     * 生产坦克
     * @param x
     * @param y
     * @param dir
     * @param group
     * @param tankFrame
     * @Return com.ms.tank.abstractfactory.BaseTank
     * @Date 2021/3/18 18:15:38
     * @Author mashuai
     */
    public abstract BaseTank createTank(int x, int y, Dir dir, Group group, TankFrame tankFrame);

    /**
     * 生产子弹
     * @param x
     * @param y
     * @param dir
     * @param group
     * @param tankFrame
     * @Return com.ms.tank.abstractfactory.BaseBullet
     * @Date 2021/3/18 18:16:01
     * @Author mashuai
     */
    public abstract BaseBullet createBullet(int x, int y, Dir dir, Group group, TankFrame tankFrame);

    /**
     * 生产爆炸
     * @param x
     * @param y
     * @param tankFrame
     * @Return com.ms.tank.abstractfactory.BaseExplode
     * @Date 2021/3/18 18:16:13
     * @Author mashuai
     */
    public abstract BaseExplode createExplode(int x,int y,TankFrame tankFrame);

}
